﻿package plugin.fashen.handler
{
    import com.core.*;
    import consts.*;
    import flash.utils.*;
    import plugin.fashen.model.*;
    import pluginfw.nio.*;
    import pluginfw.nio.imsg.*;

    public class FaShenHandler extends Object implements IGroupHandler
    {

        public function FaShenHandler()
        {
            return;
        }// end function

        public function dealSimpleMessage(param1:ISimpleMessage) : void
        {
            return;
        }// end function

        public function dealBufferMessage(param1:IBufferMessage) : void
        {
            var _loc_2:int = 0;
            var _loc_3:Object = null;
            var _loc_4:Input = null;
            var _loc_6:int = 0;
            var _loc_7:Boolean = false;
            var _loc_8:int = 0;
            var _loc_9:Array = null;
            var _loc_10:int = 0;
            var _loc_11:Array = null;
            var _loc_12:Array = null;
            var _loc_13:Object = null;
            var _loc_14:Object = null;
            var _loc_15:int = 0;
            var _loc_16:int = 0;
            var _loc_17:Array = null;
            _loc_3 = new Object();
            _loc_4 = new Input(null);
            var _loc_5:* = param1.getBody();
            switch(param1.getCmd())
            {
                case CMDFaShen.Init:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_3.heroid = _loc_4.readVarInt(false);
                    _loc_3.endTime = _loc_4.readVarInt(false);
                    _loc_6 = _loc_4.readShort();
                    _loc_3.heroInfoList = new Array();
                    _loc_15 = 0;
                    while (_loc_15 < _loc_6)
                    {
                        
                        _loc_16 = _loc_4.readByte();
                        if (_loc_16 != 0)
                        {
                            _loc_3.heroInfoList[_loc_15] = new Object();
                            _loc_3.heroInfoList[_loc_15].heroid = _loc_4.readVarInt(false);
                            _loc_3.heroInfoList[_loc_15].level = _loc_4.readVarInt(false);
                            _loc_3.heroInfoList[_loc_15].num = _loc_4.readVarInt(false);
                            _loc_3.heroInfoList[_loc_15].time = _loc_4.readVarInt(false);
                        }
                        _loc_15++;
                    }
                    ModelProxy.change("data", "fashenjihuostate", _loc_3.heroInfoList);
                    ModelProxy.change("fashen", "init", _loc_3.heroInfoList);
                    ModelProxy.change("fashen", "autoChuZhan", _loc_3);
                    ModelProxy.change("mainui", "showJihuoHero", _loc_3.heroInfoList);
                    _loc_7 = false;
                    if (_loc_3.heroInfoList.length > 0)
                    {
                        _loc_17 = new Array();
                        _loc_2 = 0;
                        while (_loc_2 < _loc_3.heroInfoList.length)
                        {
                            
                            if (int(_loc_3.heroInfoList[_loc_2].heroid) >= 90005)
                            {
                                _loc_17.push(_loc_3.heroInfoList[_loc_2]);
                                _loc_7 = true;
                            }
                            _loc_2++;
                        }
                    }
                    if (_loc_7)
                    {
                        ModelProxy.change("data", "fashen", _loc_17);
                        ModelProxy.change("bufferView", "showBindBuffer", null);
                        ModelProxy.change("fashen", "showBindBuffer", null);
                    }
                    ModelProxy.change("data", "fashenIsInit", true);
                    ModelProxy.change("mainui", "updateTemptation", _loc_3);
                    break;
                }
                case CMDFaShen.ShengJi:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_8 = _loc_4.readByte();
                    if (_loc_8 != 0)
                    {
                        _loc_3.heroInfo = new Object();
                        _loc_3.heroInfo.heroid = _loc_4.readVarInt(false);
                        _loc_3.heroInfo.level = _loc_4.readVarInt(false);
                        _loc_3.heroInfo.num = _loc_4.readVarInt(false);
                        _loc_3.heroInfo.time = _loc_4.readVarInt(false);
                    }
                    _loc_3.addtime = _loc_4.readVarInt(false);
                    ModelProxy.change("fashen", "shengji", _loc_3);
                    _loc_9 = ModelProxy.getValue("data", "fashen");
                    if (_loc_9)
                    {
                        _loc_2 = 0;
                        while (_loc_2 < _loc_9.length)
                        {
                            
                            if (_loc_9[_loc_2].heroid == _loc_3.heroInfo.heroid)
                            {
                                _loc_9[_loc_2].level = _loc_3.heroInfo.level;
                                _loc_9[_loc_2].num = _loc_3.heroInfo.num;
                                _loc_9[_loc_2].time = _loc_3.heroInfo.time + _loc_3.addtime;
                            }
                            _loc_2++;
                        }
                    }
                    ModelProxy.change("data", "fashen", _loc_9);
                    ModelProxy.change("bufferView", "showBindBuffer", null);
                    ModelProxy.change("fashen", "showBindBuffer", null);
                    break;
                }
                case CMDFaShen.GouMai:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_3.heroid = _loc_4.readVarInt(false);
                    _loc_3.num = _loc_4.readVarInt(false);
                    ModelProxy.change("fashen", "goumai", _loc_3);
                    break;
                }
                case CMDFaShen.ZhaoHuan:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_3.heroid = _loc_4.readVarInt(false);
                    _loc_3.auto = _loc_4.readByte();
                    ModelProxy.change("fashen", "zhaohuan", _loc_3);
                    ModelProxy.change("data", "chuzhanFashen", _loc_3);
                    if (_loc_3.auto == 1)
                    {
                        ModelProxy.change("fashen", "autoChuZhan", _loc_3);
                    }
                    ModelProxy.change("mainui", "chuzhanHero", 1);
                    ModelProxy.change("guidepao", "hide", GuideType.GUIDE_FS);
                    break;
                }
                case CMDFaShen.JiHuo:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_10 = _loc_4.readByte();
                    if (_loc_10 != 0)
                    {
                        _loc_3.heroInfo = new Object();
                        _loc_3.heroInfo.heroid = _loc_4.readVarInt(false);
                        _loc_3.heroInfo.level = _loc_4.readVarInt(false);
                        _loc_3.heroInfo.num = _loc_4.readVarInt(false);
                        _loc_3.heroInfo.time = _loc_4.readVarInt(false);
                    }
                    _loc_11 = ModelProxy.getValue("data", "fashen");
                    if (!_loc_11)
                    {
                        _loc_11 = [];
                    }
                    _loc_11.push(_loc_3.heroInfo);
                    _loc_2 = 0;
                    while (_loc_2 < _loc_11.length)
                    {
                        
                        if (int(_loc_11[_loc_2].heroid) >= 90005)
                        {
                            ModelProxy.change("data", "fashen", _loc_11);
                            ModelProxy.change("bufferView", "showBindBuffer", null);
                            ModelProxy.change("fashen", "showBindBuffer", null);
                        }
                        _loc_2++;
                    }
                    ModelProxy.change("fashen", "jihuoHero", _loc_3.heroInfo);
                    ModelProxy.change("mainui", "jihuoHero", _loc_3.heroInfo);
                    _loc_12 = ModelProxy.getValue("data", "fashenjihuostate");
                    if (_loc_12)
                    {
                        _loc_12.push(_loc_3.heroInfo);
                    }
                    _loc_13 = ConfigDictionary.data.hero;
                    _loc_14 = _loc_13[_loc_3.heroInfo.heroid + "_" + _loc_3.heroInfo.level];
                    if (_loc_14.id == 2 || _loc_14.id == 3 || _loc_14.id == 4)
                    {
                        ModelProxy.change("mainui", "temptationFaShen", null);
                    }
                    break;
                }
                case CMDFaShen.XiuXi:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_3.heroid = _loc_4.readVarInt(false);
                    ModelProxy.change("fashen", "xiuxi", _loc_3);
                    ModelProxy.change("mainui", "chuzhanHero", 2);
                    break;
                }
                case CMDFaShen.FaShenZhi:
                {
                    _loc_5.position = 0;
                    _loc_4.setBytes(_loc_5);
                    _loc_3.fashenValue = _loc_4.readVarInt(false);
                    ModelProxy.change("fashen", "fashenzhi", _loc_3.fashenValue);
                    break;
                }
                default:
                {
                    break;
                }
            }
            return;
        }// end function

        public function dealProxyMessage(param1:IProxyMessage) : void
        {
            return;
        }// end function

    }
}
